Many web sites and applications for electronic devices display geographical maps. Also, some applications are dedicated solely to the display of geographical maps. In addition to displaying the geographical maps, these web sites and applications often display objects overlaid on the map to show objects such as points of interest, waypoints, labels, icons, itinerary and the like. In many cases, these maps are interactive. For example, for a map displayed on a web browser, moving the mouse pointer over an object on the map can cause the display of a description of the object, such as the address or the name of the location. In the same example, clicking on the object can display a balloon containing additional information associated with the location represented by the object, such as the name of the location, address, phone number, link to the web site, and in the case of service businesses, such as restaurants and hotels, ratings, links for making a reservation or to clients' reviews.
In order to provide such interactive maps on a user interface, a user's request for a particular map section and associated objects is sent to servers associated with the particular web site or application being used. For example, a person could be looking for the location of banks in a particular city. A map server retrieves a map tile or tiles corresponding to the requested map section. An application server retrieves information corresponding to the location requested including objects and data to generate the interactive elements of the map. The server side of the system then generates and renders an object layer which, when overlaid on the map section, positions the objects in the correct location on the map, and generates a logical layer which will result in various actions occurring when the user interacts with the objects. The server side then merges the map section (i.e. a map layer), the object layer and the logical layer and sends them back to the client's device to be displayed on the user interface for the user to view and interact with. In other embodiments, the map section, the generated and rendered object layer and the generated logical layer are sent to the client's device where the object and logical layers are merged with the map section.
As would be appreciated the amount of processing power required on the server side is quite high considering the high number of requests that can be received on such servers. Also, when a user wishes to pan or zoom the map, this can result in a new request having to be generated, which can require new computations having to be made on the server side. Furthermore, when there are too many objects to be displayed on the map, the application displaying the map on the client device may crash.
This problem is further exacerbated in those circumstances, when for a given web site of general interest (such as a bank web site, for example) a map section is generated within one of the web pages of the web site (for example, in the “contact us” portion of the web site). It is typical, for the map section information to come from a third party (map service provider or the like). Within such an architecture, it is typical for the operator of the given web site to have to provide some or all of the data for the aforementioned object and logical layers (typically through an Application Programming Interface associated with such the third party). This, in turn, can place an undue burden (both in terms of computational power, required software and/or skills) onto the operator of the given web site.
One method of reducing the amount of processing power required on the server side in response to such a request consists in either removing the logical layer completely or reducing the amount of information contained in the logical layer. However, as would be understood, this results in a less enjoyable experience by the user as the resulting map has less functionality.
There is therefore a need of a method and apparatus for providing a map on a user interface that reduces the processing power necessary on the server side.